home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amoszine 9
/
Amoszine 9 (Disk 3 of 3).adf
/
AJC_Source.lha
/
AJC-QUICKLIST.AMOS
/
AJC-QUICKLIST.amosSourceCode
Wrap
AMOS Source Code
|
1995-08-01
|
4KB
|
222 lines
Set Buffer 100
'
' The Quicklist Routine From Magnetic Fiction (available NOW from F1!!)
' By Andrew Campbell of Black Dragon Design.
'
' Obviously if you've never seen the program you won't understand the
' titles in the list, but it is a good routine for making menus that
' can be controlled via the mouse.
'
' Hope it comes in useful! - AJC
'
Dim FILENAME$(40),_QUICKLIST$(40)
Global FILENAME$(),_QUICKLIST$()
Global _NUMBER_OF_STORIES
Global _QUICK_UPDATE
Global _QUICKLIST_POS
_SCREENY=6
Default Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Screen Open 0,640,240,16,Hires : Curs Off : Flash Off : Hide On : Cls 0
_JSTEP=1
_NUMBER_OF_STORIES=32
_QUICKLIST_POS=2
_INIT_VARIABLES
_QUICKLIST
Procedure _INIT_VARIABLES
' *** GET STORY NAMES
Restore S1
For I=1 To _NUMBER_OF_STORIES
Read FILENAME$(I)
Next I
' *** GET QUICKLIST INFORMATION
Restore S5
For I=1 To _NUMBER_OF_STORIES
NEW$=String$(".",60)
_QUICKLIST$(I)=FILENAME$(I)+NEW$
_QUICKLIST$(I)=Left$(_QUICKLIST$(I),40)
Read FFF$
_QUICKLIST$(I)=_QUICKLIST$(I)+FFF$
Next I
S1:
Data "Front Page"
Data "Introduction"
Data "The Survival Game"
Data "The Art Of Fear"
Data "Night Watchman"
Data "Under The House"
Data "Dutch #1- The Laocoon"
Data "Dutch #2- The Way Of God"
Data "Dutch #3- Changes"
Data "Photo Shoot"
Data "Black Mosaic"
Data "The Customer"
Data "In The Bogs"
Data "Zebraskin"
Data "Between The Sexes"
Data "Dream Before Dying"
Data "Pops and Mungo"
Data "Deepday"
Data "Thorne Island"
Data "Twisted Tales"
Data "Reason"
Data "Faces In The Carpet"
Data "The Wishing Tree"
Data "The Girl And The Biker"
Data "Midsummer Comes"
Data "Turnaround"
Data "Bad Situations"
Data "High Anxiety"
Data "Visitcha"
Data "About The Stories"
Data "E-Fiction"
Data "Back Page"
S5:
Data "-"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "......Flick G-C"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "...Kevin Murphy"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data ".Linette Voller"
Data "....Neale Grant"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "..Mike Richmond"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "Andrew Campbell"
Data "-"
End Proc
Procedure _FADE_POINTER
For I=16 To 20 : Colour I,$F0 : Next I
End Proc
Procedure _SCREENOFF
Auto View Off : Screen Hide 2 : Screen Hide 0 : Screen Hide 1
End Proc
Procedure _SCREENON
Wait 4
Screen Show 2 : Screen Show 0 : Screen Show 1
Auto View On
Wait 4
View
End Proc
Procedure _QUICKLIST
Auto View Off
Screen Open 7,640,256,4,Hires
Curs Off : Flash Off : Cls 0 : Hide On
Screen Display 7,,500,,
Pen 3 : Paper 0
Locate 0,0 : Centre "LEFT BUTTON TO CHOOSE / RIGHT TO EXIT"
Pen 1
For I=_QUICKLIST_POS To _NUMBER_OF_STORIES-1 : Gosub MAGGOT : Next I
Auto View On
View
Limit Mouse 131,44 To 443,294
_FADE_POINTER
Show On
Palette 0,$A0,$AA,$F00
For I=500 To 45 Step -1
Update
Screen Display 7,,I,,
Next I
Wait 2
HIGH=0
MAG:
Repeat
Y=Y Screen(Y Mouse)
If HIGH>0 and Y/8<>LASTY/8
I=LASTY/8
Gosub MAGGOT
End If
If Y>16 and Y<(_NUMBER_OF_STORIES)*8
I=Y/8
Gosub MAGGOT2
HIGH=1
LASTY=Y
End If
Until Mouse Key
If Mouse Key=1
I=Y/8
If I>1 and I<_NUMBER_OF_STORIES
_CURRENT_STORY=I
If _CURRENT_STORY<_NUMBER_OF_STORIES
Fade 1
Wait 15
Screen Close 7
Pop Proc
End If
End If
End If
If Mouse Key=2
Screen Close 7
Pop Proc
End If
Goto MAG
MAGGOT:
Pen 1
Locate 0,I
Centre _QUICKLIST$(I)
Return
MAGGOT2:
Pen 1
Inverse On
Locate 0,I
Centre _QUICKLIST$(I)
Inverse Off
Return
End Proc